.\" Copyright 2006-2008 Sun Microsystems, Inc.
.\" Copyright (c) 1996 Thinking Machines Corporation
.TH MPI_File_read_at_all_end 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
.SH NAME
\fBMPI_File_read_at_all_end\fP \- Reads a file at explicitly specified offsets; ending part of a split collective routine (blocking).

.SH SYNTAX
.ft R
.nf
C Syntax
    #include <mpi.h>
    int MPI_File_read_at_all_end(MPI_File \fIfh\fP, void \fI*buf\fP, 
	MPI_Status \fI*status\fP)

.fi
.SH Fortran Syntax
.nf
    INCLUDE 'mpif.h'
    MPI_FILE_READ_AT_ALL_END(\fIFH\fP, \fIBUF\fP, \fISTATUS\fP,\fI IERROR\fP)
		<TYPE>		BUF(*)
        	INTEGER		FH, STATUS(MPI_STATUS_SIZE), IERROR

.fi
.SH C++ Syntax
.nf
#include <mpi.h>
void MPI::File::Read_at_all_end(void* \fIbuf\fP, MPI::Status& \fIstatus\fP)

void MPI::File::Read_at_all_end(void* \fIbuf\fP)

.fi
.SH INPUT PARAMETER
.ft R
.TP 1i
fh    
File handle (handle).

.SH OUTPUT PARAMETERS
.ft R
.TP 1i
buf
Initial address of buffer (choice).
.ft R
.TP 1i
status
Status object (status). 
.TP 1i
IERROR
Fortran only: Error status (integer). 

.SH DESCRIPTION
.ft R
MPI_File_read_at_all_end is a split collective routine that stores the number of elements actually read from the file associated with 
.I fh
in 
.I status.
MPI_File_read_at_all_end blocks until the operation initiated by MPI_File_read_at_all_begin completes. The data is taken out of those parts of the file specified by the current view. All other fields of 
.I status
are undefined.

.SH NOTES
.ft R
All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 

.SH ERRORS
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
.sp
Before the error value is returned, the current MPI error handler is
called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  

